package cn.drenal.capcap.service;

import cn.drenal.capcap.entity.vo.CategoryDistributionVO;
import cn.drenal.capcap.entity.vo.DashboardStatisticsVO;
import cn.drenal.capcap.entity.vo.RecentActivityVO;
import cn.drenal.capcap.entity.vo.UserGrowthTrendVO;

import java.util.List;

/**
 * 统计服务接口
 * 提供系统各类数据统计功能
 */
public interface StatisticsService {
    
    /**
     * 获取仪表盘统计数据
     * 包括用户总数、作品总数、活动总数、评论总数及其环比增长率
     * 
     * @return 统计数据VO
     */
    DashboardStatisticsVO getDashboardStatistics();
    
    /**
     * 获取用户增长趋势数据
     * 
     * @param days 天数，默认30天
     * @return 用户增长趋势数据VO
     */
    UserGrowthTrendVO getUserGrowthTrend(Integer days);
    
    /**
     * 获取作品分类分布数据
     * 
     * @return 分类分布数据VO列表
     */
    List<CategoryDistributionVO> getCategoryDistribution();
    
    /**
     * 获取近期活动数据
     * 
     * @param limit 获取数量
     * @return 活动数据VO列表
     */
    List<RecentActivityVO> getRecentActivities(Integer limit);
}